Skip to content

feat(plugins): add discovery keywords to each plugin.json#48

Merged
devantler merged 1 commit into
mainfrom
claude/plugins-discovery-keywords
Jul 1, 2026
Merged

feat(plugins): add discovery keywords to each plugin.json#48
devantler merged 1 commit into
mainfrom
claude/plugins-discovery-keywords

Conversation

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Daily AI Assistant

Fixes #47 · Part of #38 (Theme 3 — marketplace discoverability)

What

Adds a grounded keywords array to all 6 plugins' plugins/<name>/plugin.json. Each keyword set is drawn from that plugin's bundled skills / MCP / agents — not generic filler:

Plugin Keywords
gitops-kubernetes gitops, flux, flux-cd, kubernetes, k8s, mcp, cluster-debugging, repository-audit, multi-tenancy, helm, kustomize
github github, git, gh-cli, pull-requests, stacked-prs, github-actions, workflows, issues, ci-cd
agentic-engineering ai, agents, agentic, llm, copilot, copilot-sdk, agent-instructions, mcp, skills, prompt-engineering
go go, golang, concurrency, generics, interfaces, testing, microservices
engineering-practices git, conventional-commits, releases, refactoring, tdd, test-driven-development, code-quality, engineering
frontend-design frontend, ui, ux, astro, web-design, css, accessibility, design

Why

Plugin manifests carried no discovery metadata. keywords is the structured field that aids search/filtering across the Claude Code / Copilot CLI plugin ecosystems, and the sibling ksail plugin already sets it (projects/ksail/copilot-plugin/.claude-plugin/plugin.json) — an established, maintainer-authored devantler-tech precedent this change follows.

ADR-0001 §D3 compliance (why not the marketplace manifests)

ADR-0001 explicitly froze the marketplace entry schema — "plugin entries stay name/description/version/source and the byte-for-byte parity diff is untouched." So the metadata lives in the per-plugin plugin.json (free-form, already carries author/resource pointers), never in .claude-plugin/marketplace.json / .github/plugin/marketplace.json. The two manifests are unchanged → the parity check stays green.

Scope / deferred (per #47)

  • category deferred — no in-repo precedent in plugin.json and the VS Code category vocabulary is a fixed enum needing a source-of-truth decision.
  • A validate-manifests.sh guard asserting keyword presence — deferred; this first child seeds the data.

Validation

  • All 6 plugin.json parse as valid JSON; keywords placed after author, before the resource pointers (ksail ordering).
  • scripts/validate-manifests.shEXIT 0 (both manifests valid, parity intact, README↔plugins parity, provenance guard all pass).
  • scripts/validate-manifests.test.sh self-test → 40 passed, 0 failed.
  • Manifests (marketplace.json ×2) untouched.

Adds a grounded `keywords` array to all 6 plugins' `plugin.json`, with
terms drawn from each plugin's bundled skills/MCP/agents, mirroring the
established ksail plugin precedent (`copilot-plugin/.claude-plugin/plugin.json`
ships a keywords array).

Per ADR-0001 §D3 the marketplace manifests keep their frozen minimal
name/description/version/source entry schema — the discovery metadata lives
in the per-plugin plugin.json only, so the byte-for-byte manifest parity check
is untouched.

Fixes #47
Part of #38

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ec255fcd-4b0b-41e3-be16-1ac052226ea3

📥 Commits

Reviewing files that changed from the base of the PR and between 563bdfe and 7e1d311.

📒 Files selected for processing (6)
  • plugins/agentic-engineering/plugin.json
  • plugins/engineering-practices/plugin.json
  • plugins/frontend-design/plugin.json
  • plugins/github/plugin.json
  • plugins/gitops-kubernetes/plugin.json
  • plugins/go/plugin.json

📝 Walkthrough

Walkthrough

Six plugin manifest files (plugins/agentic-engineering, engineering-practices, frontend-design, github, gitops-kubernetes, go) each receive a new keywords array property populated with terms relevant to that plugin's bundled skills, MCP, or agent resources. No other manifest fields are modified.

Changes

Plugin manifest keywords

Layer / File(s) Summary
Add discovery keywords array
plugins/agentic-engineering/plugin.json, plugins/engineering-practices/plugin.json, plugins/frontend-design/plugin.json, plugins/github/plugin.json, plugins/gitops-kubernetes/plugin.json, plugins/go/plugin.json
Each plugin.json gains a new keywords array listing terms grounded in that plugin's resources (e.g. ai/agentic/mcp, git/tdd, frontend/ux, github/ci-cd, gitops/flux/kubernetes, go/concurrency).

Estimated code review effort: 1 (Trivial) | ~3 minutes

Possibly related PRs

Poem

A rabbit hopped through JSON trees,
Sprinkling keywords like a breeze,
Go, GitOps, Git, and design too,
Now easier for search to find and view,
Six manifests bloom with tags anew! 🐇

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding discovery keywords to each plugin.json.
Description check ✅ Passed The description is directly related and accurately describes the keyword additions and scope.
Linked Issues check ✅ Passed The changes satisfy #47 by adding grounded keywords to all six plugin.json files while leaving marketplace manifests unchanged.
Out of Scope Changes check ✅ Passed No unrelated changes are present; the diff is limited to the intended plugin.json keyword metadata.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/plugins-discovery-keywords

Comment @coderabbitai help to get the list of available commands.

@devantler devantler marked this pull request as ready for review July 1, 2026 15:54
@devantler devantler merged commit 861acaf into main Jul 1, 2026
32 checks passed
@devantler devantler deleted the claude/plugins-discovery-keywords branch July 1, 2026 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(plugins): add discovery keywords to each plugin.json (Theme 3 first child)

1 participant